XML 43 R52.htm IDEA: XBRL DOCUMENT v2.4.1.9
Restatement - Consolidated Statements of Cash Flows (Details) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 6 Months Ended 9 Months Ended 12 Months Ended
Mar. 29, 2014
Mar. 30, 2013
Jun. 28, 2014
Jun. 29, 2013
Sep. 27, 2014
Sep. 28, 2013
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Cash Flows from Operating Activities                  
Net Income $ 5,159us-gaap_NetIncomeLoss $ 3,971us-gaap_NetIncomeLoss $ 11,778us-gaap_NetIncomeLoss $ 9,637us-gaap_NetIncomeLoss $ 14,711us-gaap_NetIncomeLoss $ 16,622us-gaap_NetIncomeLoss $ 19,867us-gaap_NetIncomeLoss $ 11,378us-gaap_NetIncomeLoss $ 17,623us-gaap_NetIncomeLoss
Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]                  
Depreciation and amortization 7,426us-gaap_DepreciationAndAmortization 7,033us-gaap_DepreciationAndAmortization 15,125us-gaap_DepreciationAndAmortization 14,173us-gaap_DepreciationAndAmortization 21,829us-gaap_DepreciationAndAmortization 21,375us-gaap_DepreciationAndAmortization 29,024us-gaap_DepreciationAndAmortization 30,926us-gaap_DepreciationAndAmortization 29,413us-gaap_DepreciationAndAmortization
Asset impairments             0us-gaap_ProductionRelatedImpairmentsOrCharges 6,975us-gaap_ProductionRelatedImpairmentsOrCharges 0us-gaap_ProductionRelatedImpairmentsOrCharges
Stock-based compensation expense 364us-gaap_ShareBasedCompensation 693us-gaap_ShareBasedCompensation 1,288us-gaap_ShareBasedCompensation 805us-gaap_ShareBasedCompensation 2,520us-gaap_ShareBasedCompensation 1,711us-gaap_ShareBasedCompensation 3,725us-gaap_ShareBasedCompensation 2,438us-gaap_ShareBasedCompensation 1,959us-gaap_ShareBasedCompensation
Deferred income taxes (604)us-gaap_DeferredIncomeTaxesAndTaxCredits (1,883)us-gaap_DeferredIncomeTaxesAndTaxCredits 998us-gaap_DeferredIncomeTaxesAndTaxCredits 1,868us-gaap_DeferredIncomeTaxesAndTaxCredits 2,073us-gaap_DeferredIncomeTaxesAndTaxCredits 833us-gaap_DeferredIncomeTaxesAndTaxCredits 345us-gaap_DeferredIncomeTaxesAndTaxCredits (1,551)us-gaap_DeferredIncomeTaxesAndTaxCredits 1,098us-gaap_DeferredIncomeTaxesAndTaxCredits
(Recovery of) provision for doubtful accounts (62)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (157)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (235)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (34)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (214)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (141)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (237)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries (77)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries 78us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
Other (757)us-gaap_OtherNoncashIncomeExpense (266)us-gaap_OtherNoncashIncomeExpense 31us-gaap_OtherNoncashIncomeExpense (101)us-gaap_OtherNoncashIncomeExpense (149)us-gaap_OtherNoncashIncomeExpense 169us-gaap_OtherNoncashIncomeExpense (5,713)us-gaap_OtherNoncashIncomeExpense 5,337us-gaap_OtherNoncashIncomeExpense 181us-gaap_OtherNoncashIncomeExpense
Changes in Assets and Liabilities:                  
Accounts receivable (8,599)us-gaap_IncreaseDecreaseInAccountsReceivable 1,066us-gaap_IncreaseDecreaseInAccountsReceivable (13,066)us-gaap_IncreaseDecreaseInAccountsReceivable (8,243)us-gaap_IncreaseDecreaseInAccountsReceivable (12,273)us-gaap_IncreaseDecreaseInAccountsReceivable 4,804us-gaap_IncreaseDecreaseInAccountsReceivable 1,086us-gaap_IncreaseDecreaseInAccountsReceivable 5,468us-gaap_IncreaseDecreaseInAccountsReceivable (1,204)us-gaap_IncreaseDecreaseInAccountsReceivable
Inventories (8,388)us-gaap_IncreaseDecreaseInInventories (993)us-gaap_IncreaseDecreaseInInventories (1,694)us-gaap_IncreaseDecreaseInInventories (357)us-gaap_IncreaseDecreaseInInventories (4,961)us-gaap_IncreaseDecreaseInInventories (1,055)us-gaap_IncreaseDecreaseInInventories (2,335)us-gaap_IncreaseDecreaseInInventories 6,962us-gaap_IncreaseDecreaseInInventories 5,870us-gaap_IncreaseDecreaseInInventories
Production cost of contracts 513us-gaap_IncreaseDecreaseInContractReceivablesNet (2,559)us-gaap_IncreaseDecreaseInContractReceivablesNet (1,734)us-gaap_IncreaseDecreaseInContractReceivablesNet (1,843)us-gaap_IncreaseDecreaseInContractReceivablesNet (1,408)us-gaap_IncreaseDecreaseInContractReceivablesNet (3,396)us-gaap_IncreaseDecreaseInContractReceivablesNet (3,513)us-gaap_IncreaseDecreaseInContractReceivablesNet (5,101)us-gaap_IncreaseDecreaseInContractReceivablesNet (1,324)us-gaap_IncreaseDecreaseInContractReceivablesNet
Other assets 5,440us-gaap_IncreaseDecreaseInOtherOperatingAssets 1,456us-gaap_IncreaseDecreaseInOtherOperatingAssets 6,563us-gaap_IncreaseDecreaseInOtherOperatingAssets (3,473)us-gaap_IncreaseDecreaseInOtherOperatingAssets 6,633us-gaap_IncreaseDecreaseInOtherOperatingAssets (10,482)us-gaap_IncreaseDecreaseInOtherOperatingAssets 4,800us-gaap_IncreaseDecreaseInOtherOperatingAssets (12,173)us-gaap_IncreaseDecreaseInOtherOperatingAssets 6,829us-gaap_IncreaseDecreaseInOtherOperatingAssets
Accounts payable (4,138)us-gaap_IncreaseDecreaseInAccountsPayable (2,097)us-gaap_IncreaseDecreaseInAccountsPayable (4,363)us-gaap_IncreaseDecreaseInAccountsPayable (1,714)us-gaap_IncreaseDecreaseInAccountsPayable (2,447)us-gaap_IncreaseDecreaseInAccountsPayable (2,910)us-gaap_IncreaseDecreaseInAccountsPayable 410us-gaap_IncreaseDecreaseInAccountsPayable 4,533us-gaap_IncreaseDecreaseInAccountsPayable (8,097)us-gaap_IncreaseDecreaseInAccountsPayable
Accrued and other liabilities (6,067)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (12,386)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers 835dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (3,775)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (5,400)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (12,819)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers 6,103dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (9,153)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers (4,892)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
Net Cash Provided by Operating Activities (9,713)us-gaap_NetCashProvidedByUsedInOperatingActivities (6,122)us-gaap_NetCashProvidedByUsedInOperatingActivities 15,526us-gaap_NetCashProvidedByUsedInOperatingActivities 6,943us-gaap_NetCashProvidedByUsedInOperatingActivities 20,914us-gaap_NetCashProvidedByUsedInOperatingActivities 14,711us-gaap_NetCashProvidedByUsedInOperatingActivities 53,422us-gaap_NetCashProvidedByUsedInOperatingActivities 45,962us-gaap_NetCashProvidedByUsedInOperatingActivities 47,534us-gaap_NetCashProvidedByUsedInOperatingActivities
Cash Flows from Investing Activities                  
Purchases of property and equipment (2,192)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (2,612)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (5,997)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (5,253)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (9,329)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (7,321)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (18,096)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (12,403)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment (15,813)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
Proceeds from sales of assets 5us-gaap_ProceedsFromSaleOfProductiveAssets 5us-gaap_ProceedsFromSaleOfProductiveAssets 51us-gaap_ProceedsFromSaleOfProductiveAssets 111us-gaap_ProceedsFromSaleOfProductiveAssets 83us-gaap_ProceedsFromSaleOfProductiveAssets 123us-gaap_ProceedsFromSaleOfProductiveAssets 91us-gaap_ProceedsFromSaleOfProductiveAssets 139us-gaap_ProceedsFromSaleOfProductiveAssets 31us-gaap_ProceedsFromSaleOfProductiveAssets
Insurance recoveries related to property and equipment     0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities   1,600us-gaap_ProceedsFromInsuranceSettlementInvestingActivities   2,550us-gaap_ProceedsFromInsuranceSettlementInvestingActivities 0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities 0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities
Net Cash Used in Investing Activities (2,187)us-gaap_NetCashProvidedByUsedInInvestingActivities (2,607)us-gaap_NetCashProvidedByUsedInInvestingActivities (5,946)us-gaap_NetCashProvidedByUsedInInvestingActivities (5,142)us-gaap_NetCashProvidedByUsedInInvestingActivities (7,646)us-gaap_NetCashProvidedByUsedInInvestingActivities (7,198)us-gaap_NetCashProvidedByUsedInInvestingActivities (15,455)us-gaap_NetCashProvidedByUsedInInvestingActivities (12,264)us-gaap_NetCashProvidedByUsedInInvestingActivities (15,782)us-gaap_NetCashProvidedByUsedInInvestingActivities
Cash Flows from Financing Activities                  
Repayment of term loan and other debt (7,506)us-gaap_RepaymentsOfDebt (7,506)us-gaap_RepaymentsOfDebt (15,012)us-gaap_RepaymentsOfDebt (15,012)us-gaap_RepaymentsOfDebt (22,519)us-gaap_RepaymentsOfDebt (22,518)us-gaap_RepaymentsOfDebt (42,650)us-gaap_RepaymentsOfDebt (33,024)us-gaap_RepaymentsOfDebt (26,478)us-gaap_RepaymentsOfDebt
Debt issue cost paid   (181)us-gaap_PaymentsOfDebtIssuanceCosts   (181)us-gaap_PaymentsOfDebtIssuanceCosts   (181)us-gaap_PaymentsOfDebtIssuanceCosts 0us-gaap_PaymentsOfDebtIssuanceCosts (365)us-gaap_PaymentsOfDebtIssuanceCosts 0us-gaap_PaymentsOfDebtIssuanceCosts
Net proceeds from issuance of common stock under stock plans 7us-gaap_ProceedsFromStockOptionsExercised (127)us-gaap_ProceedsFromStockOptionsExercised 369us-gaap_ProceedsFromStockOptionsExercised 365us-gaap_ProceedsFromStockOptionsExercised 1,289us-gaap_ProceedsFromStockOptionsExercised 1,246us-gaap_ProceedsFromStockOptionsExercised 1,356us-gaap_ProceedsFromStockOptionsExercised 1,968us-gaap_ProceedsFromStockOptionsExercised (186)us-gaap_ProceedsFromStockOptionsExercised
Net Cash Used in Financing Activities (7,499)us-gaap_NetCashProvidedByUsedInFinancingActivities (7,814)us-gaap_NetCashProvidedByUsedInFinancingActivities (14,643)us-gaap_NetCashProvidedByUsedInFinancingActivities (14,828)us-gaap_NetCashProvidedByUsedInFinancingActivities (21,230)us-gaap_NetCashProvidedByUsedInFinancingActivities (21,453)us-gaap_NetCashProvidedByUsedInFinancingActivities (41,154)us-gaap_NetCashProvidedByUsedInFinancingActivities (31,421)us-gaap_NetCashProvidedByUsedInFinancingActivities (26,664)us-gaap_NetCashProvidedByUsedInFinancingActivities
Net (Decrease) Increase in Cash and Cash Equivalents (19,399)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (16,543)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (5,063)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (13,027)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (7,962)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (13,940)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease (3,187)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease 2,277us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease 5,088us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
Cash and Cash Equivalents at Beginning of Year 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue 46,537us-gaap_CashAndCashEquivalentsAtCarryingValue 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue 46,537us-gaap_CashAndCashEquivalentsAtCarryingValue 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue 46,537us-gaap_CashAndCashEquivalentsAtCarryingValue 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue 46,537us-gaap_CashAndCashEquivalentsAtCarryingValue 41,449us-gaap_CashAndCashEquivalentsAtCarryingValue
Cash and Cash Equivalents at End of Year 29,415us-gaap_CashAndCashEquivalentsAtCarryingValue 29,994us-gaap_CashAndCashEquivalentsAtCarryingValue 43,751us-gaap_CashAndCashEquivalentsAtCarryingValue 33,510us-gaap_CashAndCashEquivalentsAtCarryingValue 40,852us-gaap_CashAndCashEquivalentsAtCarryingValue 32,597us-gaap_CashAndCashEquivalentsAtCarryingValue 45,627us-gaap_CashAndCashEquivalentsAtCarryingValue 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue 46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
Supplemental Disclosures of Cash Flow Information                  
Interest paid 11,397us-gaap_InterestPaid 12,037us-gaap_InterestPaid 1,440us-gaap_InterestPaid 1,951us-gaap_InterestPaid 24,090us-gaap_InterestPaid 25,640us-gaap_InterestPaid 25,105us-gaap_InterestPaid 27,614us-gaap_InterestPaid 31,505us-gaap_InterestPaid
Taxes paid 58us-gaap_IncomeTaxesPaid 563us-gaap_IncomeTaxesPaid 3,249us-gaap_IncomeTaxesPaid 1,743us-gaap_IncomeTaxesPaid 3,410us-gaap_IncomeTaxesPaid 6,542us-gaap_IncomeTaxesPaid 3,476us-gaap_IncomeTaxesPaid 7,835us-gaap_IncomeTaxesPaid 1,953us-gaap_IncomeTaxesPaid
Non-cash activities:                  
Purchases of property and equipment not paid 182us-gaap_CapitalExpendituresIncurredButNotYetPaid   722us-gaap_CapitalExpendituresIncurredButNotYetPaid   418us-gaap_CapitalExpendituresIncurredButNotYetPaid   1,458us-gaap_CapitalExpendituresIncurredButNotYetPaid 1,000us-gaap_CapitalExpendituresIncurredButNotYetPaid 0us-gaap_CapitalExpendituresIncurredButNotYetPaid
As Reported                  
Cash Flows from Operating Activities                  
Net Income 4,629us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
3,707us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,101us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
9,211us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
13,723us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
13,847us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  9,343us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
16,437us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]                  
Depreciation and amortization 7,426us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
7,033us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
15,125us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
14,173us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
21,829us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
21,375us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  30,926us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
29,413us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Asset impairments               6,975us-gaap_ProductionRelatedImpairmentsOrCharges
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Stock-based compensation expense 364us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
693us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,288us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
805us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
2,520us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,711us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  2,438us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,959us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Deferred income taxes (919)us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,040)us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
595us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,615us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,775us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
45us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (2,242)us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(142)us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(Recovery of) provision for doubtful accounts (62)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(157)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(235)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(34)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(214)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(141)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (77)us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
78us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Other 88us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
246us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,111us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
809us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
649us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,434us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  6,223us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
2,391us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Changes in Assets and Liabilities:                  
Accounts receivable (8,599)us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,066us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(13,066)us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(8,243)us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(12,273)us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
4,804us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  5,468us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,204)us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Inventories (8,388)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,084)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,694)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(588)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(4,961)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(206)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  7,811us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,185us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Production cost of contracts 513us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,559)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,734)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,843)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,408)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(3,396)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (5,101)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,324)us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Other assets 5,440us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,456us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,563us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(3,473)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
7,121us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(9,033)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (11,192)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,846us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Accounts payable (4,138)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,097)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(4,363)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,714)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,447)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,910)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  4,533us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(8,097)us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Accrued and other liabilities (6,067)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(12,386)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
835dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(3,775)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,400)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(12,819)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (9,143)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,008)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Net Cash Provided by Operating Activities (9,713)us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(6,122)us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
15,526us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,943us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
20,914us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
14,711us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  45,962us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
47,534us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Cash Flows from Investing Activities                  
Purchases of property and equipment (2,192)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,612)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,997)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,253)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(9,329)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,321)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (12,403)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(15,813)us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Proceeds from sales of assets 5us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
5us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
51us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
111us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
83us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
123us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  139us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
31us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Insurance recoveries related to property and equipment     0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  1,600us-gaap_ProceedsFromInsuranceSettlementInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
       
Net Cash Used in Investing Activities (2,187)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(2,607)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,946)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,142)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,646)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,198)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (12,264)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(15,782)us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Cash Flows from Financing Activities                  
Repayment of term loan and other debt (7,506)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,506)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(15,012)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(15,012)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(22,519)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(22,518)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (33,024)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(26,478)us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Debt issue cost paid   (181)us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (181)us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (181)us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (365)us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Net proceeds from issuance of common stock under stock plans 7us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(127)us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
369us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
365us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,289us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,246us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  1,968us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(186)us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Net Cash Used in Financing Activities (7,499)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,814)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(14,643)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(14,828)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(21,230)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(21,453)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (31,421)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(26,664)us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Net (Decrease) Increase in Cash and Cash Equivalents (19,399)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(16,543)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(5,063)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(13,027)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,962)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(13,940)us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  2,277us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
5,088us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Cash and Cash Equivalents at Beginning of Year 48,814us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
48,814us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
48,814us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
48,814us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
41,449us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Cash and Cash Equivalents at End of Year 29,415us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
29,994us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
43,751us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
33,510us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
40,852us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
32,597us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  48,814us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
46,537us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Supplemental Disclosures of Cash Flow Information                  
Interest paid 11,397us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
12,037us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,440us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,951us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
24,090us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
25,640us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  27,614us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
31,505us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Taxes paid 58us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
563us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
3,249us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,743us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
3,410us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,542us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  7,835us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
1,953us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Non-cash activities:                  
Purchases of property and equipment not paid 182us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  722us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  418us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
    1,000us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Restatement Adjustment                  
Cash Flows from Operating Activities                  
Net Income 530us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
264us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
677us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
426us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
988us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,775us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  2,035us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,186us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]                  
Depreciation and amortization 0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_DepreciationAndAmortization
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Asset impairments               0us-gaap_ProductionRelatedImpairmentsOrCharges
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Stock-based compensation expense 0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ShareBasedCompensation
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Deferred income taxes 315us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
157us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
403us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
253us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
298us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
788us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  691us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,240us-gaap_DeferredIncomeTaxesAndTaxCredits
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(Recovery of) provision for doubtful accounts 0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other (845)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(512)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,080)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(910)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(798)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,265)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (886)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,210)us-gaap_OtherNoncashIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Changes in Assets and Liabilities:                  
Accounts receivable 0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsReceivable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Inventories 0us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
91us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
231us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(849)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (849)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(315)us-gaap_IncreaseDecreaseInInventories
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Production cost of contracts 0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInContractReceivablesNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other assets 0us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(488)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,449)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (981)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(17)us-gaap_IncreaseDecreaseInOtherOperatingAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Accounts payable 0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncreaseDecreaseInAccountsPayable
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Accrued and other liabilities 0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (10)dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
116dco_IncreaseDecreaseInAccruedLiabilitiesAndOthers
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net Cash Provided by Operating Activities 0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInOperatingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cash Flows from Investing Activities                  
Purchases of property and equipment 0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Proceeds from sales of assets 0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromSaleOfProductiveAssets
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Insurance recoveries related to property and equipment     0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_ProceedsFromInsuranceSettlementInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
       
Net Cash Used in Investing Activities 0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInInvestingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cash Flows from Financing Activities                  
Repayment of term loan and other debt 0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_RepaymentsOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Debt issue cost paid   0us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_PaymentsOfDebtIssuanceCosts
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Net proceeds from issuance of common stock under stock plans 0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_ProceedsFromStockOptionsExercised
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net Cash Used in Financing Activities 0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_NetCashProvidedByUsedInFinancingActivities
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net (Decrease) Increase in Cash and Cash Equivalents 0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cash and Cash Equivalents at Beginning of Year 0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cash and Cash Equivalents at End of Year 0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_CashAndCashEquivalentsAtCarryingValue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Supplemental Disclosures of Cash Flow Information                  
Interest paid 0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Taxes paid 0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_IncomeTaxesPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Non-cash activities:                  
Purchases of property and equipment not paid $ 0us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
    $ 0us-gaap_CapitalExpendituresIncurredButNotYetPaid
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember